home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
PROGRAM
/
C_BAR1.ARJ
/
PRBAR.C
< prev
next >
Wrap
C/C++ Source or Header
|
1992-02-27
|
2KB
|
68 lines
/*
* prbar - print a thick or thin line or space
* IBM Graphics Printer version
* written 1987 David J. Rodman
* Paradise Technology, Inc.
* Compuserve 70007,1545
* This code is placed into the public domain. Have at it.
*/
#include <stdio.h>
extern int res, depth; /* settings for width and heigth of barcode */
extern char *text[]; /* text for the right-hand part of label */
extern lineno; /* current line of label */
static char *str; /* the string to encode */
/*
* initialize the printer as required to print string s
* the ratio of thick to thin is 3:1, and there will be 3 thicks and 6 thins.
* each character is terminated by a thin space.
* thus, each character is 16 * res dots wide (res * 6 + 3*res * 3 + res)
* each string starts and stops with a special code, so there are
* strlen(s) + 2 bytes to print.
*/
prinit(s)
char *s;
{
unsigned n;
str = s;
n = 16 * res * (strlen(s) + 2); /* total # of graphic bytes */
printf("%c1", 0x1b); /* 10 lpi */
printf("%cL%c%c", 0x1b, n & 0xff, n >> 8); /* 120 DPI graphics */
}
/*
* This is the place to put any other printer reset commands you want,
* like 6 LPI, condensed print, or whatever.
*/
prfini()
{
printf("%c3%c\n%s\n", 0x1b, 36, text[0]);
}
/*
* print an individual line or space, thick or thin
* args are boolean
*/
prbar(thick, line)
{
int w, c;
w = res * (thick ? 3 : 1);
c = line ? 0xff : 0;
while(w--)
printf("%c", c);
}
/*
* move down one line, printing the appropriate text
*/
prdown()
{
printf(" %s", text[lineno++]);
printf("%c%c", 0x0d, 0x0a);
}